package com.tanhua.common.utils;

import com.tanhua.common.pojo.User;

public class UserThreadLocal {
    //相当于把User对象封装到Local对象中
    private static final ThreadLocal<User> LOCAL = new ThreadLocal<>();

    private UserThreadLocal() {
    }

    /**
     * 将对象放⼊到ThreadLocal
     *
     * @param user
     */
    public static void set(User user) {
        LOCAL.set(user);
    }

    /**
     * 返回当前线程中的User对象
     *
     * @return
     */
    public static User get() {
        return LOCAL.get();
    }

    /**
     * 删除当前线程中的User对象
     */
    /*这个必须得有，因为当前线程对象是从线程池中拿到的，如果不把user对象和
    当前线程解绑，其他用户的线程对象里有当前用户的信息，这显然是不合理的
    */
    public static void remove() {
        LOCAL.remove();
    }
}
